<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<%@ include file="../common.jsp"%>
<%@ page import="java.io.*,java.util.*,java.net.*,org.springframework.util.FileCopyUtils" %>
<%@ page import="org.jdom.*,org.jdom.input.*" %>
<%@ page import="org.springside.core.Constants,cn.firstsoft.firstframe.admin.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>管理控制台 - 数据中心</title>
<%@ include file="/common/meta2.jsp"%>
<link href="../style.css" type="text/css" rel=stylesheet>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
table,td,img,div{margin:0;padding:0;border:0;}
table,td{font-family:"宋体"; line-height:20px}
table{border-collapse:collapse;}
td,p,li,select,input,textarea,div{font-size:12px;}
</style>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form action="index.jsp" method="post">
<table width="100%">
  <tr>
  	<td width="100%">
  	  <input type="button" name="import" 
  	    value="&nbsp;导&nbsp;&nbsp;入&nbsp;" title="从已经定义应用服务器的数据源中导入注册"
  	    onClick="this.form.action='import.jsp';this.form.submit();">
  	  <input type="button" name="register" 
  	    value="&nbsp;注&nbsp;&nbsp;册&nbsp;" title="注册已有的数据库，但还没有定义在应用服务器的数据源情况下使用此功能"
  	    onClick="this.form.action='register.jsp';this.form.submit();">
  	  <input type="button" name="create" title="创建一个新的数据库，并部署到应用服务器的数据源中"
  	    value="&nbsp;创&nbsp;&nbsp;建&nbsp;"
  	    onClick="this.form.action='create.jsp';this.form.submit();">
  	</td>
  </tr>
  <tr><td height="5"></td></tr>
  <tr>
    <td width="100%">
      <table width="100%" cellspacing="0" cellpadding="0">
        <tr bgcolor="#FFCCFF">
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">编码</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">名称</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">数据库</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">数据库地址</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">数据库类型</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">用户</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">数据路径</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">OA库</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">EAS库</td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">操作</td>
        </tr>
<%

	String jndi_default_name = PropertyFile.readValue("jdbc.properties", "jndi.default_name");
	String jndi_eas_name = PropertyFile.readValue("jdbc.properties", "jndi.eas_name");
	
	String xmlFile = System.getProperty("oa_application.config") + File.separator + "datacenter.xml";
	File file = new File(xmlFile);
	if (!file.exists()) {
		//拷贝一个文件过来

		String xmlFile1 = System.getProperty("oa_application.config") + File.separator + "datacenter_template.xml";
		File file1 = new File(xmlFile1);
		FileCopyUtils.copy(file1, file);
	}

	SAXBuilder builder = new SAXBuilder();
	Document doc;
	try {
		doc = builder.build(file);
		Element datacenters = doc.getRootElement();
		List datacenterList = datacenters.getChildren("datacenter");
		for (int i=0; i<datacenterList.size(); i++) {
			Element datacenter = (Element)datacenterList.get(i);
%>        
        <tr>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000"><%=datacenter.getAttributeValue("id") %></td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000"><%=datacenter.getAttributeValue("name") %></td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000"><%=datacenter.getAttributeValue("dbname") %></td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000"><%=datacenter.getAttributeValue("datasource") %></td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000"><%=datacenter.getAttributeValue("dbtype") %></td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000"><%=datacenter.getAttributeValue("dbuser") %></td>
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000"><%="".equals(datacenter.getAttributeValue("maindir"))?"如果是OA库，请修改补充目录":datacenter.getAttributeValue("maindir") %></td>
          <td align="center" style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">
          	<% if (jndi_default_name.endsWith("jdbc/" + datacenter.getAttributeValue("id"))) { %>
          	是

          	<% } else { %>
          	否

          	<% } %>
          </td>
          <td align="center" style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">
          	<% if (jndi_eas_name.endsWith("jdbc/" + datacenter.getAttributeValue("id"))) { %>
          	是

          	<% } else { %>
          	否

          	<% } %>
          </td>          
          <td style="border: 1px solid #87BAEE" bordercolorlight="#000000" bordercolordark="#000000">
          	<a href="register.jsp?action=edit&id=<%=datacenter.getAttributeValue("id") %>">修改</a>
          	<% if (!jndi_default_name.endsWith("jdbc/" + datacenter.getAttributeValue("id"))) { %>
          	<a href="javascript:void(0);" onClick="if (confirm('首先请通过测试链接检查此数据中心是否可用！\n指定的OA的数据路径是否正确！\n启用此数据中心，将停止其他的已启动的数据中心，是否继续？')) { location='deploy.jsp?id=<%=datacenter.getAttributeValue("id") %>&dbtype=<%=datacenter.getAttributeValue("dbtype") %>&maindir=<%=URLEncoder.encode(datacenter.getAttributeValue("maindir"),"utf-8") %>' } else { return false; }"
          		title="将此数据中心设置为OA使用的数据源，首先请通过测试链接检查此数据中心是否可用，指定的OA的数据路径是否可用！">OA</a>
          	<% } %>  
          	<% if (!jndi_eas_name.endsWith("jdbc/" + datacenter.getAttributeValue("id"))) { %>
          	<a href="javascript:void(0);" onClick="if (confirm('首先请通过测试链接检查此数据中心是否可用！\n启用此数据中心，将停止其他的已启动的数据中心，是否继续？')) { location='deploy_eas.jsp?id=<%=datacenter.getAttributeValue("id") %>&dbtype=<%=datacenter.getAttributeValue("dbtype") %>' } else { return false; }" 
          		title="将此数据中心设置为EAS使用的数据源">EAS</a>
          	<% } %>            	
          	<% if (!jndi_default_name.endsWith("jdbc/" + datacenter.getAttributeValue("id")) && !jndi_eas_name.endsWith("jdbc/" + datacenter.getAttributeValue("id"))) { %> 
          	<a href="remove.jsp?id=<%=datacenter.getAttributeValue("id") %>">反注册</a>
          	<% } %>            	
			<a href="test.jsp?id=<%=datacenter.getAttributeValue("id") %>&dbtype=<%=datacenter.getAttributeValue("dbtype") %>">测试</a>
			<!--
			<a href="data.jsp?id=<%=datacenter.getAttributeValue("id") %>&dbtype=<%=datacenter.getAttributeValue("dbtype") %>">数据</a>
			-->
			<a href="sql.jsp?datasource=<%=datacenter.getAttributeValue("id") %>&isfirst=true">SQL</a>
          </td>
        </tr>    
<%
		}
	} catch (JDOMException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	} catch (Exception e) {
		e.printStackTrace();
	}
%>    
      </table>
    </td>
  </tr>
  <tr><td height="5"></td></tr>
</table>
说明：<br>
在EASOA集成安装的情况下，有些项目EAS与OA的表放在一个数据库里，有些项目是分库部署的，在部署在同一库中时候，EAS与OA可以共用一个数据中心，当然定义两个数据中心也可以，分库部署的需要定义两个数据中心！可以通过测试，查看一下表来判断是什么数据库<br>
操作解释：<br>
导入：在系统安装之初，系统都会由安装工具创建了数据源，使用此功能可以将这些数据源导入到数据中心进行管理，因此第一步可考虑使用此功能将数据源导入！<br>
注册：EAS或OA的数据库已存在，但没有在应用服务器的数据源中创建连接，使用注册可以创建数据源连接和加入到数据中心进行管理！<br>
创建：创建一个新的OA数据库，并创建数据源连接，以及加入到数据中心进行管理！<br>
修改：对数据源的属性进行修改，例如数据库的地址，密码等发生了变化，需要利用此功能进行修改！<br>
OA：将此数据源设置为当前OA使用的数据源！<br>
EAS：将此数据源设置为当前EAS使用的数据源！<br>
反注册：将此数据源从应用服务器的数据源设置中删除，并从数据中心中删除，但不真正删除数据库<br>
测试：测试定义的数据源是否正确！<br>
数据：基础数据的导入导出功能！
SQL：向数据源连接的数据库执行简单的SQL语句！<br>
</form>
</body>
</html>
